#include <stdio.h>
#include <string.h>
#define debug true
int jie[10];
int n;
int tot;
bool suc;

void init()
{
    int i;
    jie[0] = 1;
    for (i=1; i<=9; ++i)
        jie[i] = jie[i-1]*i;        
}    
void di(int pt)
{
    if (suc) return;
    if (tot==n)
    {
        suc = true;
        return;
    }    
    if (pt>9)
    {
        return;
    }
    if (tot<=n)    di(pt+1);
    tot += jie[pt];
    if (tot<=n) di(pt+1);
    tot -= jie[pt];
    
}    
int main()
{
    init();
    while (1)
    {
        scanf("%d", &n);
        if (n<0) break;
        tot = 0;
        suc = false;        
        di(0);
        if (n==0) suc = false;
        if (suc) printf("YES\n");
        else printf("NO\n");
    }    
    
    return 0;    
}

